iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 21
0

前言:

  • Istio rate limit控制特定API流量接受頻率可以藉由此設定預防惡意攻擊服務本體

Istio rate limit

  • 限流實作可以在Istio中用EnvoyFilter部署的這個政策來控管流入,EnvoyFilter是Istio自定義的一種網路資源物件,主要實行原理在於Istio網路中的Sidecar機制,可透過Sidecar的監聽作用得知服務的Request然而去做相對應的回應或是動作,比方來說叢集中特定服務中的特定API路徑可以根據EnvoyFilter中的route可指定name方式鎖定該API限制該流量。

  • 關於流量的流速(T/min)需要部署在ratelimit服務上,至於EnvoyFilter該服務需設置在istio-system上的namespace以下有EnvoyFilter設定例子:

spec:
  configPatches:
    applyTo:  HTTP_ROUTE
    match:
      context:  GATEWAY
      routeConfiguration:
        vhost:
          name:  www.test.com:80 #對應網址
          route:
            action:  ANY
            name:    api_path #API路徑
    patch:
      operation:  MERGE
      value:
        route:
          rate_limits:
            actions:
              generic_key:
                descriptor_value:  testkey #ratelimit服務限制key
              remote_address:
    applyTo:  HTTP_ROUTE
    match:
      context:  GATEWAY
      routeConfiguration:
        vhost:
          name:  www.test.com:443
          route:
            action:  ANY
            name:    api_path
    patch:
      operation:  MERGE
      value:
        route:
          rate_limits:
            actions:
              generic_key:
                descriptor_value:  testkey
              remote_address:

結語:

  • Istio在流量控管上我認為彈性度算高,可利用在API上的實作透過什麼服務什麼路徑進而去設定該API使用頻率,一方面可以阻擋惡意攻擊,另一方面可以保護系統不被過大的瞬間流量打穿導致崩壞。

上一篇
Istio 內部憑證
下一篇
如何更新Istio
系列文
淺談 Istio30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言